{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "%pylab inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import irispy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def plot_obstacle(points, *args, **kwargs):\n",
    "    columns = np.hstack((range(points.shape[1]), [0]))\n",
    "    plot(points[0,columns], points[1, columns], *args, **kwargs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# A simple example with only one obstacle:\n",
    "\n",
    "obstacles = [np.array([[1.0, 2], [2, 1.0]]).T]\n",
    "bounds = irispy.Polyhedron.fromBounds([-1,-1], [2,2])\n",
    "seed_point = np.array([0.0, 0.0])\n",
    "\n",
    "region = irispy.inflate_region(obstacles, seed_point, bounds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-1.5, 2.5)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n/w8IJ1MpWgvaVAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x11315e150>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Draw the boundary and obstacles:\n",
    "figure(figsize=(8, 3))\n",
    "subplot(1, 2, 1)\n",
    "bounds.draw()\n",
    "for obs in obstacles:\n",
    "    plot_obstacle(obs, 'k.-')\n",
    "gca().set_xlim([-1.5, 2.5])\n",
    "gca().set_ylim([-1.5, 2.5])\n",
    "\n",
    "# Draw the region's ellipsoid and polyhedron:\n",
    "subplot(1, 2, 2)\n",
    "bounds.draw()\n",
    "for obs in obstacles:\n",
    "    plot_obstacle(obs, 'k.-')\n",
    "region.polyhedron.draw(edgecolor='g')\n",
    "region.ellipsoid.draw()\n",
    "gca().set_xlim([-1.5, 2.5])\n",
    "gca().set_ylim([-1.5, 2.5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Now a slightly more complicated example, with three obstacles:\n",
    "\n",
    "obstacles = [np.array([[2., 0], [2, 2], [3, 2], [3, 0]]).T,\n",
    "             np.array([[-1., 0], [-1, 2], [0, 2], [0.2, 0]]).T,\n",
    "             np.array([[0.5, 2]]).T]\n",
    "bounds = irispy.Polyhedron.fromBounds([-1, -1], [3, 3])\n",
    "seed_point = np.array([1.0, 2.0])\n",
    "region = irispy.inflate_region(obstacles, seed_point, bounds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-1.5, 3.5)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1139c1850>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Draw the boundary and obstacles:\n",
    "figure(figsize=(8, 3))\n",
    "subplot(1, 2, 1)\n",
    "bounds.draw()\n",
    "for obs in obstacles:\n",
    "    plot_obstacle(obs, 'k.-')\n",
    "gca().set_xlim([-1.5, 3.5])\n",
    "gca().set_ylim([-1.5, 3.5])\n",
    "\n",
    "# Draw the region's ellipsoid and polyhedron:\n",
    "subplot(1, 2, 2)\n",
    "bounds.draw()\n",
    "for obs in obstacles:\n",
    "    plot_obstacle(obs, 'k.-')\n",
    "region.polyhedron.draw(edgecolor='g')\n",
    "region.ellipsoid.draw()\n",
    "gca().set_xlim([-1.5, 3.5])\n",
    "gca().set_ylim([-1.5, 3.5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
